Generating Transformers for Deforestation and Supercompilation
نویسندگان
چکیده
Our aim is to study how the interpretive approach — inserting an interpreter between a source program and a program specializer — can be used to improve the transformation of programs and to automatically generate program transformers by self-application of a program specializer. We show that a few semantics-preserving transformations applied to a straightforward interpretive definition of a first-order, call-by-name language are sufficient to generate Wadler’s deforestation algorithm and a version of Turchin’s supercompiler using a partial evaluator. The transformation is guided by the need to binding-time improve the interpreters.
منابع مشابه
Superlinear Speedup by Program Transformation ( Extended Abstract ) Neil
There seems to be, at least in practice, a fundamental conflict within program transformations. One way: hand transformations can yield dramatic speedups, but seem to require human insight. They are thus are only suited to small programs and have not been successfully automated. On the other hand, there exist a number of well-known automatic program transformations; but these have been proven t...
متن کاملIntroduction to Supercompilation
This paper gives an introduction to Turchin s supercompiler a program transformer for functional programs which performs optimiza tions beyond partial evaluation and deforestation More precisely the paper presents positive supercompilation
متن کاملAn Algorithm of Generalization in Positive Supercompilation
This paper presents a termination technique for positive supercompilation, based on notions from term algebra. The technique is not particularily biased towards positive supercompilation, but also works for deforestation and partial evaluation. It appears to be well suited for partial deduction too. The technique guarantees termination, yet it is not overly conservative. Our technique can be vi...
متن کاملSuperlinear Speedup by Program Transformation (Extended Abstract) (meta 2012)
There seems to be, at least in practice, a fundamental conflict within program transformations. One way: hand transformations can yield dramatic speedups, but seem to require human insight. They are thus are only suited to small programs and have not been successfully automated. On the other hand, there exist a number of well-known automatic program transformations; but these have been proven t...
متن کاملPositive Supercompilation for a Higher Order Call-By-Value Language Extended Proofs
Previous deforestation and supercompilation algorithms may introduce accidental termination when applied to call-by-value programs. This hides looping bugs from the programmer, and changes the behavior of a program depending on whether it is optimized or not. We present a supercompilation algorithm for a higher-order call-by-value language and we prove that the algorithm both terminates and pre...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1994